package splitter;

import java.util.List;
import java.util.concurrent.CompletableFuture;

/**
 * 代码分割器接口
 */
public interface Splitter {
    /**
     * 将代码分割成代码块
     * 
     * @param code 代码内容
     * @param language 编程语言
     * @param filePath 文件路径（可选）
     * @return 代码块列表
     * @throws Exception 如果分割过程中发生错误
     */
    CompletableFuture<List<CodeChunk>> split(String code, String language, String filePath) throws Exception;

    /**
     * 设置代码块大小
     * 
     * @param chunkSize 代码块大小
     */
    void setChunkSize(int chunkSize);

    /**
     * 设置代码块重叠大小
     * 
     * @param chunkOverlap 代码块重叠大小
     */
    void setChunkOverlap(int chunkOverlap);
}